package com.plian.system.vo.jlr;

import com.plian.system.entity.hr.recruitment.PartTimeInfo;
import com.plian.system.entity.jlr.JlrStaffManagement;
import com.plian.system.vo.hr.staff.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;


@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "经理人档案VO", description = "经理人档案VO")
public class JlrStaffManagementVO extends JlrStaffManagement {

    private static final long serialVersionUID = 1L;
    /**
     * 001证件类型
     */
    private String documentTypeName;
    /**
     * 002性别
     */
    private String genderName;
    /**
     * 003民族
     */
    private String nationName;
    /**
     * 004政治面貌
     */
    private String politicCountenanceName;
    /**
     * 005国籍
     */
    private String nationalityName;
    /**
     * 006婚姻状态
     */
    private String maritalStatusName;
    /**
     * 007最高学历
     */
    private String educationalName;
    /**
     * 008最高学位
     */
    private String degreeName;
    /**
     * 009管理类别
     */
    private String managementCategoryName;
    /**
     * 010编制类型
     */
    private String compilationTypeName;
//	/**
//	 * 011人员类型
//	 */
//	private String staffTypeName;
//	/**
//	 * 012人员类别
//	 */
//	private String staffCategoryName;
    /**
     * 013职务类别
     */
    private String jobCategoryName;
    /**
     * 014职务名称
     */
    private String jobNameName;
    /**
     * 015职级
     */
    private String rankName;
//	/**
//	 * 016职等
//	 */
//	private String gradePositionsName;
    /**
     * 017异动事件
     */
    private String changeEventsName;
    /**
     * 018异动类型
     */
    private String changeTypeName;
    /**
     * 019单位名称
     */
    @ApiModelProperty(value = "单位名称", required = true)
    private String companyName;
    /**
     * 020部门名称
     */
    @ApiModelProperty(value = "部门名称", required = true)
    private String departmentName;
    /**
     * 021健康状态
     */
    private String healthConditionName;

    private String createUserName;

    private String updateUserName;

    private String approvedUserName;

    /**
     * 子表内容
     */

    /**
     * 学历学位-排序1
     */
    @ApiModelProperty(value = "学历学位")
    private List<EducationDegreeVO> educationDegreeVO;

    /**
     * 任免记录-排序2
     */
    @ApiModelProperty(value = "任免记录")
    private List<AppointRemoveVO>  appointRemoveVO;

    /**
     * 工作经历-排序3
     */
    @ApiModelProperty(value = "工作经历")
    private List<WorkExperienceVO>  workExperienceVO;

    /**
     * 奖惩情况-排序4
     */
    @ApiModelProperty(value = "奖惩情况")
    private List<RewardsPunishmentsVO>  rewardsPunishmentsVO;

    /**
     * 年度考核结果-排序5
     */
    @ApiModelProperty(value = "年度考核结果")
    private List<AnnualAssessmentVO>  annualAssessmentVO;

    /**
     * 家庭及社会关系-排序6
     */
    @ApiModelProperty(value = "家庭及社会关系")
    private List<SocialRelationsVO>  socialRelationsVO;

    /**
     * 从业资格证书-排序7
     */
    @ApiModelProperty(value = "从业资格证书")
    private List<PractitionerCertificateVO>  practitionerCertificateVO;

    /**
     * 专业技术资格-排序8
     */
    @ApiModelProperty(value = "专业技术资格")
    private List<TechnicalQualificationVO>  technicalQualificationVO;

    /**
     * 近五年三月以上培训情况-排序9
     */
    @ApiModelProperty(value = "近五年三月以上培训情况")
    private List<TrainVO>  trainVO;

    /**
     * 侨眷情况-排序10
     */
    @ApiModelProperty(value = "侨眷情况")
    private List<OverseasMembersVO>  overseasMembersVO;

    /**
     * 企业编号（用于数据排序用）
     */
    private String companyCode;


    /**
     * 已兼职情况 用于兼职管理
     */
    private String partTimeJobSituation;

    // 以下字段 业绩考核 根据部门获取人员信息使用

    /**
     * 是否中层
     */
    private Integer isMiddle;

    /**
     * 是否企业负责人
     */
    private Integer isLeader;

    /**
     * 平均人数
     */
    private BigDecimal averageNumber;

    /**
     * 其中: 中层人数
     */
    private BigDecimal middleAverageNumber;

    /**
     * 是否有异动
     */
    private Integer isChange;

    /**
     * 填报年月
     */
    private String fillingMonth;

    private List<PartTimeInfo> partTimeInfos;

    // 备份导出用
    /**
     * 出生日期
     */
    private String birthdayStr;

    private String joinPartyTimeStr;

    private String changeTimeStr;

    private String changeDateTimeStr;

    private String approvedTimeStr;


    /**
     * 全日制教育毕业院校系及专业
     */
    @ApiModelProperty(value = "全日制教育毕业院校专业")
    private String fulltimeSchoolMajor;


    /**
     * 在职教育毕业院校专业
     */
    @ApiModelProperty(value = "在职教育毕业院校专业")
    private String onjobSchoolMajor;



    /**
     * 现任职务
     */
    @ApiModelProperty(value = "现任职务")
    private String presentPostId;


    /**
     * 人员Id
     */
    @ApiModelProperty(value = "人员Id")
    private String staffNameId;

    private List<String> termOfOffices;

    private String isReserveCadreName;
    private String isCorporateTalentName;
}
